class SampleData {
  List<Map<String, dynamic>> get data =>
      sampleDataRows.map((row) => row.values).toList();

  final List<SampleDataRow> sampleDataRows = [
    SampleDataRow.fromList([
      '001',
      'Trident',
      'Internet Explorer 4.0',
      'Win 95+',
      '4',
      'X',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '002',
      'Trident',
      'Internet Explorer 5.0',
      'Win 95+',
      '5',
      'C',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '003',
      'Trident',
      'Internet Explorer 5.5',
      'Win 95+',
      '5.5',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '004',
      'Trident',
      'Internet Explorer 6',
      'Win 98+',
      '6',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '005',
      'Trident',
      'Internet Explorer 7',
      'Win XP SP2+',
      '7',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '006',
      'Trident',
      'AOL browser (AOL desktop)',
      'Win XP',
      '6',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '007',
      'Gecko',
      'Firefox 1.0',
      'Win 98+ / OSX.2+',
      '1.7',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '008',
      'Gecko',
      'Firefox 1.5',
      'Win 98+ / OSX.2+',
      '1.8',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '009',
      'Gecko',
      'Firefox 2.0',
      'Win 98+ / OSX.2+',
      '1.8',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '010',
      'Gecko',
      'Firefox 3.0',
      'Win 2k+ / OSX.3+',
      '1.9',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '011',
      'Gecko',
      'Camino 1.0',
      'OSX.2+',
      '1.8',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '012',
      'Gecko',
      'Camino 1.5',
      'OSX.3+',
      '1.8',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '013',
      'Gecko',
      'Netscape 7.2',
      'Win 95+ / Mac OS 8.6-9.2',
      '1.7',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '014',
      'Gecko',
      'Netscape Browser 8',
      'Win 98SE+',
      '1.7',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '015',
      'Gecko',
      'Netscape Navigator 9',
      'Win 98+ / OSX.2+',
      '1.8',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '016',
      'Gecko',
      'Mozilla 1.0',
      'Win 95+ / OSX.1+',
      '1',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '017',
      'Gecko',
      'Mozilla 1.1',
      'Win 95+ / OSX.1+',
      '1.1',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '018',
      'Gecko',
      'Mozilla 1.2',
      'Win 95+ / OSX.1+',
      '1.2',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '019',
      'Gecko',
      'Mozilla 1.3',
      'Win 95+ / OSX.1+',
      '1.3',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '020',
      'Gecko',
      'Mozilla 1.4',
      'Win 95+ / OSX.1+',
      '1.4',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '021',
      'Gecko',
      'Mozilla 1.5',
      'Win 95+ / OSX.1+',
      '1.5',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '022',
      'Gecko',
      'Mozilla 1.6',
      'Win 95+ / OSX.1+',
      '1.6',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '023',
      'Gecko',
      'Mozilla 1.7',
      'Win 98+ / OSX.1+',
      '1.7',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '024',
      'Gecko',
      'Mozilla 1.8',
      'Win 98+ / OSX.1+',
      '1.8',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '025',
      'Gecko',
      'Seamonkey 1.1',
      'Win 98+ / OSX.2+',
      '1.8',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '026',
      'Gecko',
      'Epiphany 2.20',
      'Gnome',
      '1.8',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '027',
      'Webkit',
      'Safari 1.2',
      'OSX.3',
      '125.5',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '028',
      'Webkit',
      'Safari 1.3',
      'OSX.3',
      '312.8',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '029',
      'Webkit',
      'Safari 2.0',
      'OSX.4+',
      '419.3',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '030',
      'Webkit',
      'Safari 3.0',
      'OSX.4+',
      '522.1',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '031',
      'Webkit',
      'OmniWeb 5.5',
      'OSX.4+',
      '420',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '032',
      'Webkit',
      'iPod Touch / iPhone',
      'iPod',
      '420.1',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '033',
      'Webkit',
      'S60',
      'S60',
      '413',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '034',
      'Presto',
      'Opera 7.0',
      'Win 95+ / OSX.1+',
      '-',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '035',
      'Presto',
      'Opera 7.5',
      'Win 95+ / OSX.2+',
      '-',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '036',
      'Presto',
      'Opera 8.0',
      'Win 95+ / OSX.2+',
      '-',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '037',
      'Presto',
      'Opera 8.5',
      'Win 95+ / OSX.2+',
      '-',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '038',
      'Presto',
      'Opera 9.0',
      'Win 95+ / OSX.3+',
      '-',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '039',
      'Presto',
      'Opera 9.2',
      'Win 88+ / OSX.3+',
      '-',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '040',
      'Presto',
      'Opera 9.5',
      'Win 88+ / OSX.3+',
      '-',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '041',
      'Presto',
      'Opera for Wii',
      'Wii',
      '-',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '042',
      'Presto',
      'Nokia N800',
      'N800',
      '-',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '043',
      'Presto',
      'Nintendo DS browser',
      'Nintendo DS',
      '8.5',
      'C/A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '044',
      'KHTML',
      'Konqureror 3.1',
      'KDE 3.1',
      '3.1',
      'C',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '045',
      'KHTML',
      'Konqureror 3.3',
      'KDE 3.3',
      '3.3',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '046',
      'KHTML',
      'Konqureror 3.5',
      'KDE 3.5',
      '3.5',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '047',
      'Tasman',
      'Internet Explorer 4.5',
      'Mac OS 8-9',
      '-',
      'X',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '048',
      'Tasman',
      'Internet Explorer 5.1',
      'Mac OS 7.6-9',
      '1',
      'C',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '049',
      'Tasman',
      'Internet Explorer 5.2',
      'Mac OS 8-X',
      '1',
      'C',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '050',
      'Misc',
      'NetFront 3.1',
      'Embedded devices',
      '-',
      'C',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '051',
      'Misc',
      'NetFront 3.4',
      'Embedded devices',
      '-',
      'A',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '052',
      'Misc',
      'Dillo 0.8',
      'Embedded devices',
      '-',
      'X',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '053',
      'Misc',
      'Links',
      'Text only',
      '-',
      'X',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '054',
      'Misc',
      'Lynx',
      'Text only',
      '-',
      'X',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '055',
      'Misc',
      'IE Mobile',
      'Windows Mobile 6',
      '-',
      'C',
      '2020-10-10 13:30:30',
    ]),
    SampleDataRow.fromList([
      '056',
      'Misc',
      'PSP browser',
      'PSP',
      '-',
      'C',
      '2020-10-10 13:30:30',
    ]),
  ];
}

class SampleDataRow {
  SampleDataRow._({
    required this.id,
    required this.renderingEngine,
    required this.browser,
    required this.platform,
    required this.engineVersion,
    required this.cssGrade,
    required this.dateTime,
  });

  factory SampleDataRow.fromList(List<String> values) {
    return SampleDataRow._(
      id: values[0],
      renderingEngine: values[1],
      browser: values[2],
      platform: values[3],
      engineVersion: values[4],
      cssGrade: values[5],
      dateTime: DateTime.parse(values[6]),
    );
  }

  final String id;
  final String renderingEngine;
  final String browser;
  final String platform;
  final String engineVersion;
  final String cssGrade;
  final DateTime dateTime;

  Map<String, dynamic> get values {
    return {
      'id': id,
      'renderingEngine': renderingEngine,
      'browser': browser,
      'platform': platform,
      'engineVersion': engineVersion,
      'cssGrade': cssGrade,
      'dateTime': dateTime,
    };
  }
}
